Durch diese Entwurfsmuster wird die Schnittstelle der unterschiedlichen Maschinentypen zu einer einheitlichen Schnittstelle konvertiert. Dadurch kann die Ablaufsteuerung immer über die gleiche Schnittstelle die unterschiedlichen Maschinentypen steuern.
In der Fertigungszelle sind unterschiedliche Maschinentypen vorhanden, die unterschiedliche Aufgaben ( Bearbeitung, Handhabung und Transport ) wahrnehmen. Die Schnittstelle der Maschinentypen muß aus diesem Grund auf die direkte Ansteuerung der Maschinen angepaßt sein und Befehle wie Laden und Starten eines Programmes beinhalten. Damit die einzelnen Aufgaben der Maschinen nicht direkt in die Ablaufsteurung ( Klasse ProcessingControl ) programmiert werden muß, wird einen zusätzliche Schnittstellenebene eingeführt. In dieser Schnittstellenebene werden nun abstaktere Befehle implementiert. Zum Beispiel ist für die Handhabung ein Befehl zum Wechsel der Werkzeuge vorhanden.
Es wird das Adapter-Muster verwendet, weil die Maschinen in der Fertigungszelle für unterschiedliche Aufgaben ( Bearbeitung, Transport und Handhabung ) verwendet werden können. Die Schnittstelle der Maschinen wäre zu groß, wenn alle Aufgabe mit einer Schnittstelle gelöst werden sollen. Deshalb werden mehrere Adapter-Muster verwendet, so daß für jede Aufgabe eine Schnittstelle vorhanden ist.
Es wird das Objekt-Adapter-Muster verwendet, weil die Anpassung für viele unterschiedliche Maschinen über eine Elternklasse ( z.B. CNCMaschine ) möglich ist.
Es wurde der Adapter mit Objektkomposition verwendet. Damit ist es möglich, daß eine von Handling abgeleitete Adapterklasse (z.B. CNC_Handling) mit unterschiedlichen Maschinen zusammen arbeiten kann. Denn sie spricht die Schnittstelle von CNC_Machine an und über diese Schnittstelle werden auch die von CNC_Machine abgeleiteten Klassen (z.B. DEMAGRobot) erreicht.
Durch die Objektkomposition ist es im Gegensatz zum Adapter mit Mehrfachvererbung schwieriger die Zustände der Adaptee-Klasse (z.B. CNC_Machine) zu verändern.